package com.szty.mod_jyzs.web

import android.app.Activity
import android.os.Handler
import android.os.Looper
import android.webkit.JavascriptInterface
import com.blankj.utilcode.util.BarUtils
import com.blankj.utilcode.util.ConvertUtils
import com.sjh.lib_app.AppConfig
import com.sjh.lib_app.UserConfig
import com.sjh.lib_app.event.RefWebBean
import com.sjh.lib_app.router.route
import com.sjh.lib_app.utils.contactFromQq
import org.greenrobot.eventbus.EventBus
import java.lang.ref.WeakReference

/**
 *
 * @author Extends
 * @date 2019/8/2/002
 */
class AndroidInterface(private val activity: WeakReference<Activity>?=null) {

    private val deliver = Handler(Looper.getMainLooper())

    //跳转页面，传入参数是aRouter的路由
    @JavascriptInterface
    fun jumpPage(path: String) {
        deliver.post {
            route(path )
        }
    }
    //带参数的路由跳转，参数是一个对象的json
    @JavascriptInterface
    fun jumpPage(path: String,json:String = "") {
        deliver.post {
            route(path,"jsonParams" to json )
        }
    }

    //网页传token给我，接口需要使用
    @JavascriptInterface
    fun setToken(token:String){
        UserConfig.token = token
    }

    /**
     * 告诉webView状态栏高度 单位 dp
     */
    @JavascriptInterface
    fun getStatusBarHeightDP()= ConvertUtils.px2dp(BarUtils.getStatusBarHeight().toFloat())

    /**
     * 告诉webView状态栏高度 单位 px
     */
    @JavascriptInterface
    fun getStatusBarHeightPX()= BarUtils.getStatusBarHeight()

    /**
     * 页面刷新
     */
    @JavascriptInterface
    fun refWeb() {
        EventBus.getDefault().post(RefWebBean())
    }

    /**
     * 打开QQ和指定QQ号聊天
     */
    @JavascriptInterface
    fun contactQQ(qq:String){
        deliver.post{
            contactFromQq(qq)
        }
    }

    /**
     * 获取app包名
     */
    @JavascriptInterface
    fun getAppPackageName()=(activity?.get()?.packageName)?:""

    /**
     * 获取app版本名称
     */
    @JavascriptInterface
    fun getAppVersionName()= AppConfig.versionName

}